A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to mapping a source object with a target object. More particularly, the invention relates to a graphical user interface and methods for defining a mapping between a source object and a target object in a mapping tool.
The Internet is enabling businesses to develop new ways to facilitate efficient and automated interactions between their own internal line of business, productivity and knowledge management applications, the applications used by their customers and trading partners, and services provided by their commercial and corporate providers. The challenges associated with enabling such efficient and automated interactions between applications across business boundaries in a cost effective manner are similar to those associated with enabling them within an enterprise or departmental boundary. Building business-to-business (B2B) e-commerce systems presents many challenges to the system architect. Often, each company involved stores their data and documents in formats that are different from the formats used by the other participating companies. These companies need a way to integrate what tend to be vastly different systems. In addition, Internet security issues are involved in business to business data interchange. Thus, several challenges are faced by businesses, governments, and other entities wishing to interact via electronic documents and other forms of electronic commerce.
The challenges to interaction across business boundaries include lack of a sufficiently flexible and rich universal language to specify, package, publish, and exchange both structured and unstructured information across application or business boundaries, lack of a flexible and rich universal language to specify, package, publish, and execute transformation rules to convert information from one format to the other as application and business boundaries are crossed, and lack of middleware-neutral application level communication protocols to enable automated interactions across application or business boundaries. The eXtensible Markup Language (XML), and XML-based schema languages enable businesses and other users to describe and exchange structured information between collaborating applications or business partners in a platform and middleware neutral manner.
Domain specific standards bodies and industry initiatives have started to adopt XML and XML-based schema languages to specify both their vocabularies and content models. These schemas are becoming widely published and implemented to facilitate communication between both applications and businesses. Wide support of XML has also resulted in independent solution providers developing solutions that enable the exchange of XML-based information with other external third party or custom developed applications. Several solution or middleware/platform specific approaches have been taken to address the lack of middleware-neutral application level communication protocols.
However, no single proprietary solution or middleware platform meets all the needs of a complex deployment environment. In addition, the cost and complexity of integrating together ERP systems, inventory management systems, or sales tracking systems within a single organization strains the capabilities of most large and small companies alike. In the near future, electronic commerce is going to require massive amounts of application integration across multiple organizations, as trading partners turn to the Internet to automate supply chains, forecasting systems, and government services, and new types of business interchanges.
Although XML provides a standardized format for document definition, conventional development tools require system developers to create code for mapping individual source document schemas with target schemas in order to facilitate the interchange of information between business organizations or entities. In a typical example, two companies may create schemas for their documents in XML. Where these companies want to exchange information via internal documents, an XML schema is created for documents at each company, and a system developer generates code for mapping information transfer between the source and target document schemas. Such mapping code may be developed in a language such as eXtensible Stylesheet Language (XSL). A developer may thus create an XSL style sheet representation of a mapping between source and target schemas.
An XSL style sheet is a form of mapping which includes a template of the desired target structure, and identifies data in the source document to insert into this template. This model for merging data and templates is referred to as the template-driven model and works well on regular and repetitive data. XSL also provides capabilities for handling highly irregular and recursive data such as is typical in documents. Template fragments are defined, and the XSL processor combines the results of these fragments into a final result tree based on the shape of the source data. Each template fragment declares the type and context of source nodes it is appropriate for, allowing the XSL processor to match source nodes with template fragments. This model is known as the data-driven model since the shape of the data drives the shape of the final output. An XSL transformation process is thus independent of any particular output grammar and can be used for translating XML data from one schema (source) to another (target).
Heretofore, system developers have provided code defining the interrelationships between XML business documents, based on the desired information to be exchanged via electronic commerce applications. However, for each source and target document set, code must be written mapping the relationships therebetween. Whether the code representing such a mapping is written in XSL or another language, writing this code is difficult and typically beyond the capabilities of ordinary business personnel. Conventional tools require a user to program document schema mappings using specialized, often proprietary, programming languages. The complexity of such programming languages and the learning curve associated therewith has heretofore discouraged average business personnel from attempting to create document mappings without the aid of experienced programmers. Improved tools are thus desirable to enable business personnel to define document mappings for business to business applications, as well as to generate mapping code, which do not require extensive knowledge of software programming.
The present invention provides a graphical user interface and method for creating a mapping between a source object (e.g., representing an XML business document by an XML schema) and a destination or target object (e.g., representing an XML business document by an XML schema) using graphical mapping indicia which minimize or overcome the above mentioned shortcomings of conventional methodologies. The source and target objects may be schemas, spreadsheets, documents, databases, or other information sources, and the graphical mapping indicia may include link indicia and/or function objects linking nodes in the target object with nodes in the source object. The mapping may be compiled into code used by a runtime engine to translate source documents into target documents, for example, in business to business information exchange applications.
The mapper user interface enables a user to graphically construct a translation mapping between a source schema and a destination (target) schema. This provides significant advantages over existing tools and methods which required a user to generate translational script or code. By providing a graphical environment for the creation of translation mappings, business personnel may efficiently generate document mappings without extensive knowledge of programming languages or the assistance of programmers. The user interface itself provides separate display regions or zones for the source and destination objects, which may be graphically presented as tree structures, with a mapping (grid) region in between.
The invention further provides the use of function objects or functoids in the mapping region, which may be connected between source and destination tree nodes to provide the desired translation functionality. Compiler interaction is provided which allows a user to compile a mapping from the interface. Compiler links and errors are graphically indicated in the mapping region, and the user may adjust compiler directives graphically. The invention also provides for simulation or testing of compiled document translation mappings.
The user interface provides the ability to link source tree nodes with destination tree nodes through direct links and/or functoid links, wherein the links are graphically represented as lines in the mapping or grid region of the display. Such links may be created using mouse movements and button clicks, and existing links may be moved. In addition, link properties may be modified via the user interface, for example, to change compiler options. In addition, properties associated with the tree nodes may be modified via the user interface. The interface also indicates partial links via dashed green lines, where a user has collapsed a node in one of the trees.
The mapping region of the user interface provides a functoid palette whereby a user may view available functoid icons which may be placed anywhere in the mapping or grid region using a drag and drop mechanism. The functoid palette includes several categories of functoid groupings, such as String, Mathematical, Logical, Date, Conversion, Scientific, and Advanced. The functoids in the grid may be moved, deleted, modified, and connected to tree nodes or other functiods using a mouse. Functoid properties are viewable and editable via pop-up pages or windows displaying the input parameters and script associated with a selected functoid. User-defined functoids are available to users wishing to create custom mapping functionality by writing script. The script may be, for example, visual basic script, visual C++, java script, or any ActiveX scripting language. The interface allows the creation of the functoid script, as well as the editing of the parameters and script associated with existing functiods.
The interface also allows a user to view and edit links generated by the mapping compiler. Dashed lines in the mapping region indicate compiler links immediately following compilation, and compiler warning messages and output code are displayed via a pop-up window. The links may be modified by the user in order to change compiler directives. The user-modifications are then used in subsequent compilations of a mapping.
The interface further provides replacement of the source and/or destination schema trees. This allows a user to correct or modify a previously created schema tree using an editor tool, and to reinsert the modified tree into a mapping without destroying the existing links in the mapping. The user interface re-establishes the links where possible, according to node name recognition or other considerations, and provides indications to the user of links which could not be re-established. In addition, the user interface allows the use of various data sources as source or destination schemas, such as documents, spreadsheets, databases, and other information sources. Translations are provided, whereby the mapper tool user interface generates a tree representation of such information sources for the creation of a mapping therebetween.
The interface also provides testing or simulation capabilities. A destination document instance may thus be created and displayed by the interface according to a sample source schema document and the translation map. Based on the output destination document, the user can modify the document translation mapping by modifying links, adding functoids, etc. In this regard, the user may associate constant values with source tree nodes, which are then used by the user interface in generating the sample destination document.
In accordance with one aspect of the present invention, there is provided a mapping tool graphical user interface, comprising a source screen region adapted to display a graphical representation of a source object, a target screen region adapted to display a graphical representation of a target object, and a mapping screen region adapted to allow a user to create a mapping between the graphical representation of the source object and the graphical representation of the target object using graphical mapping indicia. The source and target objects may be schemas, spreadsheets, documents, databases, or other information sources, and the graphical mapping indicia may include link indicia and/or function objects linking nodes in the target object with nodes in the source object.
According to another aspect of the invention, the source and target objects may include root nodes, record nodes, and field nodes. The field nodes may be indented in hierarchical fashion from the record nodes, and the record nodes are indented in hierarchical fashion from the root nodes. In addition, the mapping screen region may be located between the source and target screen regions, wherein the indentation of field and record nodes in the source and target screen regions is toward the mapping screen region. This provides an easy to use interface, wherein the hierarchical indentation of the source and target trees provides optimal access to tree nodes from the mapping screen region using a mouse or other user interface selection device.
According to another aspect of the invention, a mapping tool graphical user interface is provided which includes a source screen region adapted to display a graphical representation of a source object, a target screen region adapted to display a graphical representation of a target object, a mapping screen region adapted to allow a user to create a mapping between the graphical representation of the source object and the graphical representation of the target object using graphical mapping indicia, and a graphical compiler object adapted to allow the user to generate compiled mapping output code using a compiler. The mapping screen region may include compiler link indicia associated with links generated by the compiler, appearing as dashed lines in the mapping screen region. A user may select the compiler link indicia and move the compiler link indicia to another source or target, for example, using a mouse. In addition, an output code screen may be provided in another region of the user interface, which displays the output code generated by the compiler and compiler warnings.
According to yet another aspect of the invention, there is provided a mapping tool graphical user interface, comprising a source screen region adapted to display a graphical representation of a source object having a source node, a target screen region adapted to display a graphical representation of a target object having a target node, and a mapping screen region adapted to allow a user to create a mapping between the graphical representation of the source object and the graphical representation of the target object using graphical mapping indicia with a graphical link indicia adapted to associate the target node with the source node. The graphical link indicia may be a solid line in the mapping screen region between source and target tree nodes and/or function objects. The links may be selected, modified, and/or moved, for example, using a mouse. In addition, compiler directives and other properties associated with the links may be modified by the user.
According to another aspect of the invention, the graphical mapping indicia comprises a function object or functiod adapted to associate a target node a source node. The function object may be associated with script used by a compiler to generate compiled mapping output code. A function object palette may be provided in a palette region including a plurality of function objects, which allows a user to drag and drop a function object from the function object palette onto the mapping screen region using a user interface selection device such as a mouse. Thereafter, the function objects may be selected, moved, deleted, and properties associated therewith may be modified. Function objects may be selected individually or in groups, and selection indicia may indicate the function objects so selected. User-defined function objects may be created via the interface, and the script associated with function objects may be modified or customized.
According to another aspect of the invention, one or more scrolling indicia may be provided in the mapping screen region adapted to allow the user to selectively display portions of the mapping in the mapping screen region. This allows a user to create a large complex mapping, a portion of which is displayed in the mapping screen region. The scrolling indicia is displayed near an outer perimeter of the mapping region when the user moves a user interface selection device near the outer perimeter. The scrolling indicia indicates a direction in which scrolling is possible, and the mapping screen region may scroll the mapping display in the direction indicated by the scrolling indicia when the user selects the scrolling indicia using the user interface selection device.
The user interface may further include a mapping preview page in a mapping preview page region adapted to display the entire mapping. This allows a user to effectively zoom out to see an overview of the mapping. The mapping preview page further comprises a current region indicia adapted to indicate the portion of the mapping currently displayed in the mapping screen region. The user may move the current region indicia within the mapping preview page region, to thereby change the portion of the mapping currently displayed in the mapping screen region.
According to still another aspect of the invention, the user interface may also include a test screen region adapted to display a test target object instance according to the mapping. The test screen region may further comprises a test value page adapted to allow a user to associate a constant value with a node in one of the source object and the target object, and a test output window adapted to display the test target object instance. This allows the user to simulate document translations according to the current mapping in the mapping region.
According to yet another aspect of the invention, the user interface is adapted to allow a user to replace one of the source and target objects, and to preserve at least a portion of the mapping. Consequently, a user may correct a source or target schema error discovered while creating a mapping, and insert the revised source or target schema, while maintaining as many mapping links as possible.
In accordance with another aspect of the invention, there is provided a method of creating a mapping in a mapper graphical user interface. The method comprises displaying a graphical representation of a source object in a source screen region, displaying a graphical representation of a target object in a target screen region, creating a mapping between the graphical representation of the source object and the graphical representation of the target object in a mapping screen region using graphical mapping indicia, and displaying the mapping in the mapping screen region. In addition, the invention comprises a computer-readable medium with computer-executable instructions for implementing the methodology of the invention.
To the accomplishment of the foregoing and related ends, certain illustrative aspects of the present invention are hereinafter described with reference to the attached drawing figures. The following description and the annexed drawings set forth in detail certain illustrative applications and aspects of the invention. However, the illustrations and description are indicative of but a few of the various ways in which the principles of the invention may be employed. Other aspects, advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings.